# 第九章 面向对象基础 无app 纯手打-wez
class Student:
    # 类属性 定义在类中 方法外的变量
    school='石家庄恩创教育'

    # 初始方法方法
    def __init__(self,xm,age):# xm,age是方法的参数，是局部变量，xm，age的作用域是整个__init__方法
        self.name = xm # 等号左侧是实例属性，xm是局变量，将局部变量的值xm赋值给实例属性self.name
        self.age = age # 实例属性的名称和局部变量的名称可以相同

    #定义在类中的函数称为方法，自带一个参数self
    def show(self):
        print(f'我叫{self.name},今年{self.age}岁')

    # 静态方法
    @staticmethod
    def sm():
        print('这是一个静态方法，不能调用实例属性，也不能调用实例方法')

    # 类方法
    @classmethod
    def cm(cls):
        print('这是一个类方法，不能调用实例属性，也不能调用实例方法')


# 创建类的对象
stu = Student('ysj',18) # init中有两个形参 self是自带的参数 无需手动传入

# 调用对象的属性
print(stu.name,stu.age)

# 调用类的属性
print(Student.school)

# 调用对象的实例方法
stu.show()

# 调用类方法
Student.cm()

# 调用静态方法
Student.sm()